package com.cac.demo.newCode.standardAssort.mapper;

import com.cac.demo.newCode.sorting.entity.MsTaskAo;
import com.cac.demo.newCode.sorting.entity.MsTaskPackage;
import com.cac.demo.newCode.standardAssort.dto.MsAoBzjBillDTO;
import com.cac.demo.newCode.standardAssort.vo.MsAoBzjBillVO;
import com.cac.demo.newCode.standardAssort.vo.WmsItemInventoryVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface MsAoBzjBillMapper {
    //查询物料配套信息列表
    List<MsAoBzjBillVO> selectWithLackItemQty(@Param("msTaskAoId") String msTaskAoId);

    //查询台账数量
    List<WmsItemInventoryVO> selectWmsItenQty(@Param("billvo") MsAoBzjBillVO msAoBzjBillVO ,@Param("departCode") String departCode);

    /**
     * 根据台账ID查询当前临时台账表是否已经分配完
     *
     * @param wmsItemInventoryId
     * @return
     */
    int getWorkbinAlreadyUseAmount(String wmsItemInventoryId);


    /**
     * 插入台账临时表
     */
    int insertSortItemInventoryTemp(@Param("billvo") MsAoBzjBillVO msAoBzjBillVO, @Param("reqvo") WmsItemInventoryVO wmsItemInventoryVO,@Param("reqMatchQty") int reqMatchQty);



    /**
     * 物料配套信息(结果表)
     */
    int insertAoMatchInfo(@Param("billvo") MsAoBzjBillVO msAoBzjBillVO, @Param("reqvo") WmsItemInventoryVO wmsItemInventoryVO, @Param("package") MsTaskPackage msTaskPackage, @Param("billdto") MsTaskAo msTaskAo, @Param("reqMatchQty") int reqMatchQty);

    /**
     * 当前标准件未找到任何库存-插入结果表
     */
    int insertAoMatchInfoForNoInventory(@Param("billvo") MsAoBzjBillVO msAoBzjBillVO, @Param("package") MsTaskPackage msTaskPackage,@Param("billdto") MsTaskAo msTaskAo);

    /**
     * 更新标准件是否缺件
     */
    int updateAoMatchInfoState(String msAoMatchBillId);

    /**
     *更新标准件是否缺件
     */
    int updateAoMatchInfoStateForZeroMatchQty(String msAoMatchBillId);

 //   void insertAoMatchInfo(MsAoBzjBillVO msAoBzjBillVO, WmsItemInventoryVO wmsItemInventoryVO, MsTaskAo msTaskAo, int reqMatchQty);
}
